home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-10-09 | 3.6 KB | 114 lines | [TEXT/MEDT] |
- MODULE ToolboxDemo; (* W. Heiz, 7-Apr-86 *)
-
- FROM SYSTEM IMPORT ADDRESS, BYTE, WORD, SETREG, REG,
- INLINE;
-
- TYPE Ptr = ADDRESS;
- Handle = POINTER TO ADDRESS;
- Str255 = ARRAY [0..255] OF CHAR;
-
- (* QuickDraw types *)
-
- VHSelect = (V, H);
- Point = RECORD
- CASE :INTEGER OF
- 0: v, h : INTEGER;
- | 1: vh : ARRAY [V..H] OF INTEGER;
- END;
- END;
- Rect = RECORD
- CASE :INTEGER OF
- 0: top, left, bottom, right : INTEGER;
- | 1: topLeft, botRight : Point;
- END;
- END;
- BitMap = RECORD
- baseAddr : Ptr;
- rowBytes : INTEGER;
- bounds : Rect;
- END;
- Pattern = ARRAY [0..7] OF BYTE;
- StyleItem = (bold, italic, underline, outline, shadow,
- condense, extend);
- Style = SET OF StyleItem;
- Bits16 = ARRAY [0..15] OF CARDINAL;
- Cursor = RECORD
- data, mask : Bits16;
- hotSpot : Point
- END;
- GrafPtr = POINTER TO GrafPort;
- GrafPort = RECORD
- device : INTEGER;
- portBits : BitMap;
- portRect : Rect;
- visRgn, clipRgn : Handle;
- bkPat, fillPat : Pattern;
- pnLoc, pnSize : Point;
- pnMode : INTEGER;
- pnPat : Pattern;
- pnVis, txFont : INTEGER;
- txFace : Style;
- txMode, txSize : INTEGER;
- spExtra, fgColor, bkColor : LONGINT;
- colrBit, patStretch : INTEGER;
- picSave, rgnSave, polySave : Handle;
- grafProcs : Ptr;
- END;
-
- (* QuickDraw routines *)
-
- PROCEDURE GetPort (VAR port: GrafPtr); CODE 0A874H;
- PROCEDURE SetPort (newPort: GrafPtr); CODE 0A873H;
- PROCEDURE SetOrigin (h, v: INTEGER); CODE 0A878H;
- PROCEDURE Random (): INTEGER; CODE 0A861H;
- PROCEDURE SetRect (VAR r: Rect; left, top, right, bottom: INTEGER);
- CODE 0A8A7H;
- PROCEDURE Pt2Rect (pt1, pt2: Point; VAR rect: Rect); CODE
- 0A8ACH;
- PROCEDURE OffsetRect (VAR r: Rect; dh, dv: INTEGER); CODE
- 0A8A8H;
- PROCEDURE InsetRect (VAR r: Rect; dh, dv: INTEGER); CODE
- 0A8A9H;
- PROCEDURE PaintRect (VAR r: Rect); CODE 0A8A2H;
- PROCEDURE EraseRect (VAR r: Rect); CODE 0A8A3H;
- PROCEDURE InvertRect (VAR r: Rect); CODE 0A8A4H;
- PROCEDURE DrawChar (ch: WORD); CODE 0A883H;
- PROCEDURE NewWindow (wStorage: Ptr;
- VAR boundsRect: Rect;
- VAR title: Str255;
- visible: BOOLEAN;
- theProc: INTEGER;
- behind: Ptr;
- goAwayFlag: BOOLEAN;
- refCon: LONGINT): Ptr; CODE 0A913H;
- PROCEDURE DisposeWindow (theWindow: Ptr); CODE 0A914H;
-
- (* Other example procedures *)
-
-
- PROCEDURE NewPtr(byteCount: LONGINT): ADDRESS;
- CONST D0 = 0; A0 = 8;
- BEGIN
- SETREG(D0, byteCount); INLINE(0A11EH); RETURN REG(A0)
- END NewPtr;
-
- PROCEDURE ModulaToPascalString(m: ARRAY OF CHAR; VAR p: Str255);
- VAR i: INTEGER;
- BEGIN
- i := 0;
- WHILE (i <= HIGH(m)) & (m[i] # 0C) DO p[i+1] := m[i]; INC(i) END;
- p[0] := CHR(i);
- END ModulaToPascalString;
-
- PROCEDURE CalledByToolbox;
- BEGIN
- INLINE(048E7H, 01F38H); (* MOVEM.L A2-A4/D3-D7, -(SP) save
- regs *)
- (* your statements *)
- INLINE(04CDFH, 01CF8H); (* MOVEM.L (SP)+, A2-A4/D3-D7 rest
- regs *)
- END CalledByToolbox;
-
- END ToolboxDemo.
-
-